package com.distributeredis.redis_springboot.spring_fast_json.d01_fastjsontest.jsonfieldtest;

import com.alibaba.fastjson.annotation.JSONField;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;

import java.util.Date;

/**
 * @JSonField注解
 * 该注解作用于方法上,字段上和参数上.可在序列化和反序列化时进行特性功能定制.
 * - 注解属性 : name 序列化后的名字
 * - 注解属性 : ordinal序列化后的顺序
 * - 注解属性 :  format 序列化后的格式
 * - 注解属性 :  serialize 是否序列化该字段
 * - 注解属性 : deserialize 是否反序列化该字段
 * - 注解属性 : serialzeFeatures 序列化时的特性定义
 */
@Data
@NoArgsConstructor
@AllArgsConstructor
@Accessors(chain = true)
public class UserPeopleJsonFileld {
    @JSONField(name = "name",ordinal = 1) // 属性值越小  顺序靠前
    private String userName;
    @JSONField(ordinal = 2)
    private Integer userAge;
    @JSONField(serialize = false) // @JSONField,指定是否序列化改字段
    private String userAddress;
    @JSONField(format = "YYYY-MM-dd") // 指定序列化格式
    private Date userBirthday;
}
